Evolving Mach 3.0 to A Migrating Thread Model

نویسندگان

  • Bryan Ford
  • Jay Lepreau
چکیده

We have modi ed Mach 3.0 to treat cross-domain remote procedure call (RPC) as a single entity, instead of a sequence of message passing operations. With RPC thus elevated, we improved the transfer of control during RPC by changing the thread model. Like most operating systems, Mach views threads as statically associated with a single task, with two threads involved in an RPC. An alternate model is that of migrating threads, in which, during RPC, a single thread abstraction moves between tasks with the logical ow of control, and \server" code is passively executed. We have compatibly replaced Mach's static threads with migrating threads, in an attempt to isolate this aspect of operating system design and implementation. The key element of our design is a decoupling of the thread abstraction into the execution context and the schedulable thread of control, consisting of a chain of contexts. A key element of our implementation is that threads are now \based" in the kernel, and temporarily make excursions into tasks via upcalls. The new system provides more precisely de ned semantics for thread manipulation and additional control operations, allows scheduling and accounting attributes to follow threads, simpli es kernel code, and improves RPC performance. We have retained the old thread and IPC interfaces for backwards compatibility, with no changes required to existing client programs and only a minimal change to servers, as demonstrated by a functional Unix single server and clients. The logical complexity along the critical RPC path has been reduced by a factor of nine. Local RPC, doing normalmarshaling, has sped up by factors of 1.7{3.4. We conclude that a migrating-thread model is superior to a static model, that kernel-visible RPC is a prerequisite for this improvement, and that it is feasible to improve existing operating systems in this manner.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Notes on Thread Models in Mach 3.0

During the Mach In-Kernel Servers work, we explored two alternate thread models that could be used to support traps to in-kernel servers. In the "migrating threads" model we used, the client's thread temporarily moves into the server's task for the duration of the call. In the "thread switching" model, an actual server thread is dispatched to handle client traps. Based on our experience, we fin...

متن کامل

Notes on Thread Models in Mach

During the Mach In Kernel Servers work we explored two alternate thread models that could be used to support traps to in kernel servers In the migrating threads model we used the client s thread temporarily moves into the server s task for the duration of the call In the thread switching model an actual server thread is dispatched to handle client traps Based on our experience we nd that the mi...

متن کامل

The Enhancement of a User-level Thread Package Scheduling on Multiprocessors

Parallel applications on multiprocessors achieve better performance when they run on simpler microkernel scheduling mechanisms with appropriated user level scheduling policies. Our purpose is to offer to application programmers a set of new and simple primitives to get more control over the user-level thread scheduling. This paper presents a new library scheduling approach, based in the CThread...

متن کامل

A Practical Study on Locking and Reference Counting in the Mach 3.0 Kernel

Mach is a multiprocessor multithreaded operating system. This implies that several threads try to access and modify the same data at the same time. It is necessary to avoid consistency problems without performance bottlenecks. In this paper we describe the use of coordination techniques when accessing some of the data structures used in the Mach Kernel to represent the different abstractions. T...

متن کامل

Adding Scheduler Activations to Mach 3.0

When user-level threads are built on top of traditional kernel threads, they can exhibit poor performance or even incorrect behavior in the face of blocking kernel operations such as I/O, page faults, and processor preemption. This problem can be solved by building user-level threads on top of a new kernel entity, the scheduler activation. The goal of the effort described in this paper was to i...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994